Skip to content

feat(dev): cockpit view core (roadmap-v0.6 E.1) — completes all of v0.6#89

Merged
RNT56 merged 3 commits into
mainfrom
claude/v06-e1-cockpit
Jun 29, 2026
Merged

feat(dev): cockpit view core (roadmap-v0.6 E.1) — completes all of v0.6#89
RNT56 merged 3 commits into
mainfrom
claude/v06-e1-cockpit

Conversation

@RNT56

@RNT56 RNT56 commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Summary

Roadmap-v0.6 E.1 — a task/evidence/approval cockpit built entirely from the existing redacted, read-only event-log read-model. New module crustcore_dev::views::cockpit:

  • build_cockpit(backend) → CockpitView — composes run_inspector() + pending_approvals() into a bounded frame (chain-health flag + task grid + approval forms).
  • TaskDetailView — rolled up from the run inspector's TaskRow.
  • EvidenceSummaryViewreferences only (frame count, seq range, terminal kind) — never raw chain-of-thought or secret content.
  • ApprovalFormView — carries the operation-bound op-hash; the resolution the form submits echoes it, and the existing dispatch_resolution rejects a mismatch — so resolving approval A can never approve operation B.

CI core vs live seam

  • CI core (4 tests): evidence is refs-only; the approval form carries the op-hash binding; build_cockpit over MockDevBackend composes a bounded frame; the task grid is bounded (no unbounded page).
  • Live seam: the axum bind, the /ws tick loop, and the HTML/JS assets are the existing C7-serve-live seam (live_ws_sse_emits_a_snapshot, runbook §F.3) — no new seam.

Trust boundary

Every value comes from an already-redacted source (invariant 2); the cockpit renders evidence but mints nothing — it never approves, completes, or integrates (invariants 13, 5); approval forms are op-hash-bound (invariant 14); lists are bounded (invariant 11). The mutating path stays the existing gated dispatch_resolution (the engine is the sole Approved<T> minter).

Tests run

cargo xtask verifygreen. Nano unchanged at 53.5% (crustcore-dev, non-nano). Independent off main.

🎉 With this, every roadmap-v0.6 task (Phases A–F) is built.

🤖 Generated with Claude Code

RNT56 and others added 3 commits June 29, 2026 11:46
… all of v0.6

Adds crustcore_dev::views::cockpit: build_cockpit(backend) -> CockpitView
composes the existing redacted, read-only event-log read-model into a
bounded task/evidence/approval frame — TaskDetailView (from the run
inspector), EvidenceSummaryView (references only — frame counts/seq range/
terminal; never raw CoT or secrets, invariant 2), and ApprovalFormView
carrying the operation-bound op-hash so a resolution can only approve the
exact operation shown (invariant 14; binding checked by the existing
dispatch_resolution).

Every list bounded (MAX_COCKPIT_TASKS/APPROVALS, invariant 11); the cockpit
renders evidence but mints nothing (invariant 13), supervisor-only
(invariant 5). Pure view core over MockDevBackend; the axum bind + /ws tick
loop + HTML/JS assets remain the existing C7-serve-live seam.

Completes Phase E and the entire roadmap-v0.6 buildable scope. 4 new tests;
non-nano; zero nano impact. `cargo xtask verify` green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Wires build_cockpit into the dev-UI serve layer: a read-only GET /cockpit
route (route_class table + handle_read render via format!("{:?}", ...), the
same pure mutation::route core the other views use) + the axum .route behind
the serve feature. CI-tested over MockDevBackend (renders a bounded frame;
a POST is rejected as not-the-one-mutating-route). Updated the route-table
red-team test (11 read + 1 mutating; the cockpit adds a GET, never a second
mutating route).

Now only the axum bind + /ws tick loop remain the existing C7-serve-live
seam. 2 new tests; crustcore-dev (non-nano); zero nano impact.
`cargo xtask verify` green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@RNT56 RNT56 merged commit 8f40a25 into main Jun 29, 2026
1 of 3 checks passed
@RNT56 RNT56 deleted the claude/v06-e1-cockpit branch June 29, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant